Computer networking is the communication between computer systems. Such networks involve at least two devices capable of being networked with at least one usually being a computer. The devices can be separated by a few meters (e.g. via Bluetooth) or thousands of kilometers (e.g. via the Internet).
For instance, FIG. 1 illustrates a typical networking environment 100. It has a network cloud 101 which has routers (two of which are shown as 102 and 106) and server components 104 (examples include IBM® Domino® server software, FreeBSD, Solaris and Linux server software). A router acts as a junction between two or more computers or networks to transfer data packets among them. The server components 104 may be attached to databases or other memory 105. Further, in the network, there may be other servers, such as server 104A. A problem is that the server software in server 104 and 104A may not be identical and may not have the same capability. This will be discussed in greater detail below.
The network further comprises a client 108 which communicates through the networking environment 100 to other computers 114A, 114B, 114C, 114D. Client 108 may contain many software applications to serve the user such as word processing applications or the like. One of the applications may be an email client 110. One example of a very popular and highly successful email client is IBM's Lotus® Notes® client which works in conjunction with IBM's Lotus® Domino server software. A description of Lotus Notes and Lotus Domino can be found here: http://www-142.ibm.com/software/sw-lotus/products/product4.nsf/wdocs/noteshomepage?OpenDocument&cwesite=notes
Email Client Software 110 is installed on a client computer 108 and works in conjunction with a main mail server installed on the Server 104. The Email Client 110 is a computer program that is used to read and send e-mail. There are many different types of email clients, such as IBM Lotus Notes, Mozilla Thunderbird, and Microsoft Office Outlook.
Each Email Client 110 generally has a Main Email Server 104. The Main Email Server 104 is the primary email server for a client, such as Client 110. A Back Up Server 104A provides back up or redundancy for Main Mail Server 104 in the case where there is a Main Mail Server 104 failure in which case emails “fail over” to the Back Up Email Server 104A. In the case of the Domino server, Main Email Server 104 provides most of the functionality for the Notes Client Email Client 110. The Notes client 110 allows the user to manipulate the user's email, for instance, directly on the Server 104 or it allows the user to replicate the contents of the mailbox to the client so that the user may locally manipulate the email.
However, it may be that the email server software of the main email server 104 and the Back up Email Server 104A may have different levels of functionality. This is not unusual as many times server software is updated on an irregular basis due to one of many reasons.
Main Email Server 104 may include an Agent Component 107. The term “agent” describes a software abstraction, an idea, or a concept, which provides a convenient and powerful way to describe a complex software entity that is capable of acting with a certain degree of autonomy in order to accomplish tasks on behalf of its user. One familiar example is the “Out of Office” agent. The “Out of Office” agent, in Lotus Notes, is a LotusScript agent that is part of the Notes mail template. “Out of Office” agents can be programmed in other languages, such as in Java. When enabled and so configured, the “Out of Office” agent automatically responds to mail that arrives when a user is out of the office. The user may utilize Notes Client 110 to configure the “Out of Office” Agent 107 directly on the Server 104 by creating “Out of Office” Agent Configuration File 109 or, alternatively, user may configure “Out of Office” agent 107 at a local Agent Configure Component 110. The Agent Configuration file 111 would then be sent to Server Agent 107 for use. An example of a Configuration Screen 400 is shown in FIG. 4 having a User Name Field 402 and an Activation Check Box 404. FIG. 5 shows Enabling Screen 500 having a Leaving Field 502 to indicate when the user is leaving or is otherwise unavailable. Configuration Screen 500 further has a Returning Field 504 to indicate when the user is returning or is otherwise available. When configuring the agent, the user can specify the text of the message (Message 506), and set rules regarding who should not receive any messages, or who should receive a special message (Special Message 508). This is stored in an “Out of Office” Configuration File 111.
The Agent 107 generates automatic responses once for each person who sends mail to the user, even if the person sends several messages to the user during the user's absence—depending upon the contents of the “Out of Office” Configuration File 111 or, alternatively, “Out of Office” Configuration File 107 created directly on the Server 104.
The user, at Client 110, configures the Agent 107 by sending the “Out of Office” Configuration File 111 to the Router 106 which passes it on to Server 106. Server 106 stores the “Out of Office” Configuration File 111 in Server “Out of Office” Storage File 105. In Lotus Notes/Lotus Domino, the “Out of Office” Configuration File 111 is sent to Server 104 along with email. When another user, such as Other Computer 114D, sends an Email Message 118, Server 104 receives the Email Message 118 and stores it in an email box (Email box 2 145). Server “Out of Office” Agent 107 generates an Automatic Response 120 to the Sender (Other Computer 114D) based upon the “Out of Office” Configuration File 111 or “Out of Office” Configuration File 109.
Back up Server 104A has a second mailbox (Email box 2 146). This way if Main Server 104 fails, email can be deposited into Email box 2 146 for later pick up by the user.
However, it may be that Back up Server 104A does not have the Out of Office functionality, that is, it does not have the Server Out of Office Agent software.
This is also shown in FIG. 2 where Client 110 sends an “Out of Office” Configuration File 111 to Router 106. Router 106 forwards “Out of Office” Configuration File 111 to Server 104. Server 104 stores “Out of Office” File 111 in the Server “Out of Office” Storage File 105. Other Computer 114D sends an Email 118 to Client 110. Email 118 is received by Router 102 which forwards this to Server 104. Due to the Out of Office Configuration 111 being received by Server 104, Server Out of Office Agent 107 sends Out of Office Notification 120 to Router 102 which is forwarded to Other Computer 114D. Alternatively, in Lotus Domino, Routers 102, 106 do not forward configuration information but rather operate with a replication function. To generalize, all documents, including configuration documents, are kept in sync between all servers (primary and backup servers). So if some server goes down, backup server has the latest information (configuration as well as data documents).
Some time later, a Server 104 failure occurs at 234. Other Computer 114D sends another email 118 to Client 108. Email 118 is received by Router 102 which forwards this to Server 104. However, as the Server 104 is down, Server Out of Office Agent 107 is also not operational. The Email 118 fails over to Back Up Email Server 104A and is received and stored in the back up email box. No mail failure notification is sent as the email was successfully sent. However, as Back up Email Server 104A has no agent capability, no Out of Office response can be sent to Other Computer 114D. A variation of this problem is where Router 102, 106 have no agent capability and the Back-up Email Server 104A has agent capability but the primary email Server 104 has a different configuration due to its having an upgraded version of software. This would be considered a mixed server environment due to the fact that the servers have different levels of software. This may cause a problem for “Out of Office” responses. For instance, in IBM's Lotus Domino server software, in the latest version (“Domino 6”), (which includes a new router component), responses to emails are treated differently as it has a new implementation of out of office functionality which is not an agent. The response is performed in-line with mail delivery and, as it generates out-of-office responses, it marks messages to which it responded with a special flag. When the backup server does not have the latest version of the server/router software (which is common when the new version is just released), the messages are not responded to in-line with mail delivery (and therefore they are not marked as responded). Out-of-office agent exists in the old server and possibly in the new server (since this is not a new piece of software), but it is not used on the old server because only the new server has new “out of office” functionality. This problem is shown more clearly in FIG. 1A. New Server 149A has auto-response capability in Router component 150A but old Back Up Server 104A does not but rather has Agent 107A which is now longer used in the system. Routers 102A, 106A have no agent capability. So, if new Server 149A goes down, it fails over to Backup server 104A. When the new Server 149A comes back up from being down, it knows that there might be some documents that may not have been processed while it was down, and then it executes the Out of office agent to process messages that were missed. Out of office agent knows that they were missed because they are not marked by the new router component 150A (as well as qualifying because they are in the time frame when the user was away as well as pass all other parameters). However, if the emails were processed by the Back up server having down-level function, the emails, while having been processed, appear to Server 104 as if they hadn't because they were not marked. Therefore, it would be desirable if the new configuration were replicated on the back-up server.
Finally, when an “out of office” response is not sent, it poses a problem in that senders of emails or other communication to a user do not receive notification that the user is out of the office. Further, the user may wish to convey specific information to the sender which won't be sent due to the server failure.
In view of the foregoing, a need exists to overcome these problems by providing a system and method for failover processing for automatic responder in a mixed server environment.